home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / game / role / dungeon.lzh / Dungeon / dungeon.doc < prev    next >
Text File  |  1991-02-18  |  14KB  |  320 lines

  1.               Portable (More or Less) Dungeon
  2.  
  3. This is the old standby Dungeon game that was distributed on countless
  4. DECUS tapes, in a form that only ran on certain DEC computers,
  5. portabilized for the world for of Unix and MS-DOS. AS described in the
  6. original documentation below, there were several problems, mostly
  7. related to the assumption of 16 bit integers. This was taken care of
  8. by a liberal dose of 'and'ing numbers with 65535. The problems caused
  9. by octal constants ("10000)  and Radix-50 constants was easily taken
  10. care of with machine translation. The bitwise functions were all
  11. rewritten as actual function calls to functions whose names begins
  12. with "Z". All the data that went into commons is now done through
  13. block data subprograms or ordinary code.
  14.  
  15.  
  16. Installation is moderately simple. First, you MUST edit the textcnv.f
  17. and machdev.f files (umless you are using Microsoft Fortran on an IBM
  18. PC.) You MUST get the proper bitwise functions and proper recordsize for 
  19. the dtext.dat file. This latter is the smallest recordsize that will hold
  20. 78 bytes. This goes in both textcnv.f and machdev.f. You must also, in
  21. machdev.f, install the proper unit numbers your computer uses for terminal
  22. read and write. It would be good to get time and date functions also, but 
  23. these are nonessential: if you can't get one or the other, just set all the
  24. date values to 1 and put fixed numbers in the time values. Finally, you have
  25. to, sigh, get a format for reading from your terminal, hopefully leaving the
  26. user's reply on the same line as the prompt. Some systems simply
  27. can't do this: on them, just try replacing the string ",$" with two spaces. 
  28.  
  29. On Unix, all the .dat files need to be made all upper-case.
  30.  
  31. On some systems you must rename the .f files to .for.
  32.  
  33. Then compile and link textcnv.f, and run it. You'll get the
  34. direct access file DTEXT.DAT.
  35.  
  36. Then compile and link all the other .f files to create the main
  37. game program, which you should probably call Dungeon or Dungeon.exe.
  38.  
  39. If you don't have a Fortran compiler - the "f2c" converter works
  40. just fine. Just run everything through f2c and then do to the .c
  41. files what you would do to the .f ones. You might have problems with
  42. overlapping libraries: read the f2c documentation.
  43.  
  44. Then play the game.
  45.  
  46. This version almost certainly will need some major changes on ones complement
  47. computers, and very minor ones on non-ASCII ones, perhaps but not necessarily
  48. including Primes. It should run on 16 bit computers. It does on the IBM-PC 
  49. with Microsoft Fortran and the 16-bit switch. On other 16 bit machines you\
  50. might have to fix up a some constants that are greater than +32767.
  51.  
  52.  
  53. ******************************************************************************
  54.  
  55. The following is part of the text that came with the original DECUS
  56. version of Dungeon. Instructions for putting it onto specific DEC
  57. systems has been removed, as it was obsolete (and might have caused
  58. terminal giggles.)
  59.  
  60. ******************************************************************************
  61.  
  62. To:    Dungeon Players
  63. From:    "The Translator"
  64. Subj:    Game Information
  65. Date:    8-OCT-80
  66.  
  67.  
  68. This is the first (and last) source release of the PDP-11 version of 
  69. Dungeon.
  70.  
  71. Please note that Dungeon has been superceded by the game ZORK(tm).
  72. The following is an extract from the new product announcement for
  73. ZORK in the September, 1980 issue of the RT-11 SIG newsletter:
  74.  
  75.   "'ZORK:  The Great Underground Empire - Part I' ...was developed
  76.    by the original authors based on their ZORK (Dungeon) game for
  77.    the PDP-10.  It features a greatly improved parser;  command
  78.    input and transcript output files;  SAVEs to any device and
  79.    file name;  and adaptation to different terminal types,
  80.    including a status line on VT100s.  Note:  this is not the
  81.    FORTRAN version that has been available through DECUS.  This
  82.    version has been completely rewritten to run efficiently on
  83.    small machines - up to 10 times as fast as the DECUS version.
  84.  
  85.    ...ZORK runs under RT-ll, HT-ll, or RSTS/E and requires as
  86.    little as 20K words of memory and a single floppy disk drive.
  87.    The game package, consisting of an RX01-format diskette and
  88.    an instruction booklet, is available from Infocom, Inc.,
  89.    P.O. Box 120, Kendall Station, Cambridge, Ma. 02142."
  90.  
  91. ZORK(tm) is a trademark of Infocom, Inc.  It is available for several
  92. popular personal computers as well as for the PDP-ll.
  93.  
  94.  
  95. 6.  Warnings and Restrictions
  96.  
  97. For those familiar with the MDL version of the game on the ARPAnet,
  98. the following is a list of the major incompatabilties:
  99.  
  100.     -The first six letters of a word are considered
  101.      significant, instead of the first five.
  102.     -The syntax for TELL, ANSWER, and INCANT is different.
  103.     -Compound objects are not recognized.
  104.     -Compound commands can be delimited with comma as well
  105.      as period.
  106.  
  107. Also, the palantir, brochure, and dead man problems are not
  108. implemented.
  109.  
  110.  
  111. 7.  Abstract of Informational Printouts
  112.  
  113. SUMMARY
  114. -------
  115.  
  116.             Welcome to Dungeon!
  117.  
  118.    Dungeon is a game of adventure, danger, and low cunning.  In it
  119. you will explore some of the most amazing territory ever seen by mortal
  120. man.  Hardened adventurers have run screaming from the terrors contained
  121. within.
  122.  
  123.    In Dungeon, the intrepid explorer delves into the forgotten secrets
  124. of a lost labyrinth deep in the bowels of the earth, searching for
  125. vast treasures long hidden from prying eyes, treasures guarded by
  126. fearsome monsters and diabolical traps!
  127.  
  128.    No DECsystem should be without one!
  129.  
  130.    Dungeon was created at the Programming Technology Division of the MIT
  131. Laboratory for Computer Science by Tim Anderson, Marc Blank, Bruce
  132. Daniels, and Dave Lebling.  It was inspired by the Adventure game of
  133. Crowther and Woods, and the Dungeons and Dragons game of Gygax
  134. and Arneson.  The original version was written in MDL (alias MUDDLE).
  135. The current version was translated from MDL into FORTRAN IV by
  136. a somewhat paranoid DEC engineer who prefers to remain anonymous.
  137.  
  138.    On-line information may be obtained with the commands HELP and INFO.
  139. INFO
  140. ----
  141.  
  142. Welcome to Dungeon!
  143.  
  144.    You are near a large dungeon, which is reputed to contain vast
  145. quantities of treasure.   Naturally, you wish to acquire some of it.
  146. In order to do so, you must of course remove it from the dungeon.  To
  147. receive full credit for it, you must deposit it safely in the trophy
  148. case in the living room of the house.
  149.  
  150.    In addition to valuables, the dungeon contains various objects
  151. which may or may not be useful in your attempt to get rich.  You may
  152. need sources of light, since dungeons are often dark, and weapons,
  153. since dungeons often have unfriendly things wandering about.  Reading
  154. material is scattered around the dungeon as well;  some of it
  155. is rumored to be useful.
  156.  
  157.    To determine how successful you have been, a score is kept.
  158. When you find a valuable object and pick it up, you receive a
  159. certain number of points, which depends on the difficulty of finding
  160. the object.  You receive extra points for transporting the treasure
  161. safely to the living room and placing it in the trophy case.  In
  162. addition, some particularly interesting rooms have a value associated
  163. with visiting them.  The only penalty is for getting yourself killed,
  164. which you may do only twice.
  165.  
  166.    Of special note is a thief (always carrying a large bag) who
  167. likes to wander around in the dungeon (he has never been seen by the
  168. light of day).  He likes to take things.  Since he steals for pleasure
  169. rather than profit and is somewhat sadistic, he only takes things which
  170. you have seen.  Although he prefers valuables, sometimes in his haste
  171. he may take something which is worthless.  From time to time, he examines
  172. his take and discards objects which he doesn't like.  He may occas-
  173. ionally stop in a room you are visiting, but more often he just wanders
  174. through and rips you off (he is a skilled pickpocket).
  175.  
  176. HELP
  177. ----
  178.  
  179. Useful commands:
  180.  
  181.    The 'BRIEF' command suppresses printing of long room descriptions
  182. for rooms which have been visited.  The 'SUPERBRIEF' command suppresses
  183. printing of long room descriptions for all rooms.  The 'VERBOSE'
  184. command restores long descriptions.
  185.    The 'INFO' command prints information which might give some idea
  186. of what the game is about.
  187.    The 'QUIT' command prints your score and asks whether you wish
  188. to continue playing.
  189.    The 'SAVE' command saves the state of the game for later continuation.
  190.    The 'RESTORE' command restores a saved game.
  191.    The 'INVENTORY' command lists the objects in your possession.
  192.    The 'LOOK' command prints a description of your surroundings.
  193.    The 'SCORE' command prints your current score and ranking.
  194.    The 'TIME' command tells you how long you have been playing.
  195.    The 'DIAGNOSE' command reports on your injuries, if any.
  196. Command abbreviations:
  197.  
  198.    The 'INVENTORY' command may be abbreviated 'I'.
  199.    The 'LOOK' command may be abbreviated 'L'.
  200.    The 'QUIT' command may be abbreviated 'Q'.
  201.  
  202. Containment:
  203.  
  204.    Some objects can contain other objects.  Many such containers can
  205. be opened and closed.  The rest are always open.   They may or may
  206. not be transparent.  For you to access (e.g., take) an object
  207. which is in a container, the container must be open.  For you
  208. to see such an object, the container must be either open or
  209. transparent.  Containers have a capacity, and objects have sizes;
  210. the number of objects which will fit therefore depends on their
  211. sizes.  You may put any object you have access to (it need not be
  212. in your hands) into any other object.  At some point, the program
  213. will attempt to pick it up if you don't already have it, which
  214. process may fail if you're carrying too much.  Although containers
  215. can contain other containers, the program doesn't access more than
  216. one level down.
  217.  
  218. Fighting:
  219.  
  220.    Occupants of the dungeon will, as a rule, fight back when
  221. attacked.  In some cases, they may attack even if unprovoked.
  222. Useful verbs here are 'ATTACK <villain> WITH <weapon>', 'KILL',
  223. etc.  Knife-throwing may or may not be useful.  You have a
  224. fighting strength which varies with time.  Being in a fight,
  225. getting killed, and being injured all lower this strength.
  226. Strength is regained with time.  Thus, it is not a good idea to
  227. fight someone immediately after being killed.  Other details
  228. should become apparent after a few melees or deaths.
  229.  
  230. Command parser:
  231.  
  232.    A command is one line of text terminated by a carriage return.
  233. For reasons of simplicity, all words are distinguished by their
  234. first six letters.  All others are ignored.  For example, typing
  235. 'DISASSEMBLE THE ENCYCLOPEDIA' is not only meaningless, it also
  236. creates excess effort for your fingers.  Note that this trunca-
  237. tion may produce ambiguities in the intepretation of longer words.
  238.  
  239.    You are dealing with a fairly stupid parser, which understands
  240. the following types of things--
  241.  
  242.    Actions:
  243.     Among the more obvious of these, such as TAKE, PUT, DROP, etc.
  244.     Fairly general forms of these may be used, such as PICK UP,
  245.     PUT DOWN, etc.
  246.  
  247.    Directions:
  248.     NORTH, SOUTH, UP, DOWN, etc. and their various abbreviations.
  249.     Other more obscure directions (LAND, CROSS) are appropriate in
  250.     only certain situations.
  251.    Objects:
  252.     Most objects have names and can be referenced by them.
  253.  
  254.    Adjectives:
  255.     Some adjectives are understood and required when there are
  256.     two objects which can be referenced with the same 'name' (e.g.,
  257.     DOORs, BUTTONs).
  258.  
  259.    Prepositions:
  260.     It may be necessary in some cases to include prepositions, but
  261.     the parser attempts to handle cases which aren't ambiguous
  262.     without.  Thus 'GIVE CAR TO DEMON' will work, as will 'GIVE DEMON
  263.     CAR'.  'GIVE CAR DEMON' probably won't do anything interesting.
  264.     When a preposition is used, it should be appropriate;  'GIVE CAR
  265.     WITH DEMON' won't parse.
  266.  
  267.    Sentences:
  268.     The parser understands a reasonable number of syntactic construc-
  269.     tions.  In particular, multiple commands (separated by commas)
  270.     can be placed on the same line.
  271.  
  272.    Ambiguity:
  273.     The parser tries to be clever about what to do in the case of
  274.     actions which require objects that are not explicitly specified.
  275.     If there is only one possible object, the parser will assume
  276.     that it should be used.  Otherwise, the parser will ask.
  277.     Most questions asked by the parser can be answered.
  278. 8.  Source Notes
  279.  
  280. A few notes for source hackers.
  281.  
  282. ******************************************************************
  283. *                                                                *
  284. *   [ This has been superceded for Dungeon 1990 version.]        *
  285. *                                                                *
  286. ******************************************************************
  287.  
  288. - The initialization module (DINIT.FTN) includes an access protection
  289.   function PROTCT.  If PROTCT returns a value of .TRUE., the game is
  290.   permitted to start;  if PROTCT returns .FALSE., the game is
  291.   terminated with a suitably nasty message.  At present, PROTCT is a
  292.   dummy routine and always returns .TRUE.;  by tailoring PROTCT,
  293.   access to the game can be restricted to certain hours or users.
  294.  
  295. - The data base OPEN and READ statements are in the initialization
  296.   module (DINIT.FTN).  The data base file names are simply "DINDX.DAT"
  297.   and "DTEXT.DAT".  These may be freely changed to include logical
  298.   device names, UIC's, etc.  Thus, it is possible to place the data
  299.   base files on different devices, in a fixed UIC, etc.
  300.  
  301. - Converting the game to another processor is not a straightforward
  302.   procedure.  The game makes heavy use of extended and/or
  303.   idiosynchratic features of PDP-11 Fortran.  Particular nasties
  304.   include the following:
  305.  
  306.   > The game vocabulary is stored in Radix-50 notation.
  307.  
  308.   > The game uses the extended I/O commands OPEN and CLOSE.
  309.  
  310.   > The game uses LOGICAL*1 variables for character strings.
  311.  
  312.   > The game uses logical operators on integers for bitwise binary
  313.     operations.
  314.  
  315.   > The game treats certain arrays and variables as unsigned
  316.     16-bit integers (integer overflow may occur).
  317.  
  318.   In general, the game was implemented to fit in memory, not to be
  319.   transported.  You're on your own, friend!
  320.